我在 ASP.NET 网站项目中工作(与 Web 应用程序项目相反,这意味着它没有.csproj
文件)。
解决方案的结构如下:
-Solution
|-dlls
| |-AjaxControlToolkit.dll
|-packages
| |-Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1
| | |-(...)
| |-RestSharp.106.6.7
| |-(...)
|-WebSiteProject
| |-Bin
| | |-(.refresh files listed below)
| |-packages.config
| |-(other website files)
从源代码管理重新签出后,在Bin
文件夹中我有这些:
AjaxControlToolkit.dll.refresh:
..\dlls\AjaxControlToolkit.dll
Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll.refresh:
..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
RestSharp.dll.refresh:
..\packages\RestSharp.106.6.9\lib\net452\RestSharp.dll
roslyn/csc.exe.refresh:
..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\tools\roslynlatest\csc.exe
...以及以
roslyn
结尾的文件夹中的其他文件.dll.refresh
,都与csc.exe.refresh
上述类似。
构建网站后,这些文件出现在Bin
文件夹中:
- ajaxcontroltoolkit.dll
- restsharp.dll
- restsharp.dll.xml
但是,Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
没有,也没有任何二进制文件roslyn/
。因此,该站点无法验证/运行。
我有三个问题,都密切相关:
仅签入到源代码控制 (TFS) 是否正确,
.refresh
并假设二进制文件将由构建过程在本地复制?即使相对路径错误,如何正确复制
ajaxcontroltoolkit.dll
和restsharp.dll
复制(分别从Solution/dlls
和)?Solution/packages/RestSharp.105.2.3
为什么相同的魔法不适用于目录
Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
中的所有二进制文件roslyn
?
注意:因为这是一个网站项目,所以确保没有构建前或构建后的事件。
谢谢。
PS的内容WebSiteProject/packages.config
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net472" />
<package id="RestSharp" version="106.6.9" targetFramework="net472" />
</packages>