MSBuild 找不到 DLL
MSBuild not finding the DLL
我使用 Mono.Cecil
发出一个控制台应用程序,我想将 MSBuild 集成到构建过程中。但是当我 运行 dotnet build
在我的自定义项目文件上时,MSBuild 抛出一个错误说 Expected file "obj\Debug\net5.0\refint\test.dll" does not exist
。它试图在 refint
文件夹中找到生成的程序集。当程序集按原样在 obj\Debug\net5.0\test.dll
内生成时。有没有办法可以更改 MSBuild 查找输出程序集的路径? IL 生成器方面的一切都有效,我什至在 build
文件夹中得到了一个 运行nable exe。这是我的项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<OutputType>Exe</OutputType>
<DefaultLanguageSourceExtension>.ao</DefaultLanguageSourceExtension>
<OutputPath>C:\Users\filip\source\alto\samples\test\obj\Debug\net5.0\</OutputPath>
</PropertyGroup>
<Target Name="CreateManifestResourceNames" />
<Target Name="CoreCompile" DependsOnTargets="$(CoreCompileDependsOn)">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)\..\..\src\aoc\aoc.csproj" -- @(Compile->'$(MSBuildThisFileDirectory)', ' ') /o "@(IntermediateAssembly)" @(ReferencePath->' /r "%(Identity)"', ' ')"
WorkingDirectory="$(MSBuildProjectDirectory)" />
</Target>
</Project>
提前致谢。
我没有阅读整个错误消息。
C:\Program Files\dotnet\sdk.0.100-preview.7.21379.14\Microsoft.Common.CurrentVersion.targets(4527,5): error : Expected file "obj\Debug\net5.0\refint\test.dll" does not exist.
它实际上将我指向引发错误的文件。这是哪里:
<!-- Copy the reference assembly build product (.dll or .exe). -->
<CopyRefAssembly
SourcePath="@(IntermediateRefAssembly)"
DestinationPath="$(TargetRefPath)"
Condition="'$(ProduceReferenceAssembly)' == 'true' and '$(CopyBuildOutputToOutputDirectory)' == 'true' and '$(SkipCopyBuildProduct)' != 'true'"
>
<Output TaskParameter="DestinationPath" ItemName="ReferenceAssembly"/>
<Output TaskParameter="DestinationPath" ItemName="FileWrites"/>
</CopyRefAssembly>
它试图在我不需要时制作一个参考程序集。所以我只是将 ProduceReferenceAssembly
属性 设置为 false
,因为我不需要一个。
我使用 Mono.Cecil
发出一个控制台应用程序,我想将 MSBuild 集成到构建过程中。但是当我 运行 dotnet build
在我的自定义项目文件上时,MSBuild 抛出一个错误说 Expected file "obj\Debug\net5.0\refint\test.dll" does not exist
。它试图在 refint
文件夹中找到生成的程序集。当程序集按原样在 obj\Debug\net5.0\test.dll
内生成时。有没有办法可以更改 MSBuild 查找输出程序集的路径? IL 生成器方面的一切都有效,我什至在 build
文件夹中得到了一个 运行nable exe。这是我的项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<OutputType>Exe</OutputType>
<DefaultLanguageSourceExtension>.ao</DefaultLanguageSourceExtension>
<OutputPath>C:\Users\filip\source\alto\samples\test\obj\Debug\net5.0\</OutputPath>
</PropertyGroup>
<Target Name="CreateManifestResourceNames" />
<Target Name="CoreCompile" DependsOnTargets="$(CoreCompileDependsOn)">
<Exec Command="dotnet run --project "$(MSBuildThisFileDirectory)\..\..\src\aoc\aoc.csproj" -- @(Compile->'$(MSBuildThisFileDirectory)', ' ') /o "@(IntermediateAssembly)" @(ReferencePath->' /r "%(Identity)"', ' ')"
WorkingDirectory="$(MSBuildProjectDirectory)" />
</Target>
</Project>
提前致谢。
我没有阅读整个错误消息。
C:\Program Files\dotnet\sdk.0.100-preview.7.21379.14\Microsoft.Common.CurrentVersion.targets(4527,5): error : Expected file "obj\Debug\net5.0\refint\test.dll" does not exist.
它实际上将我指向引发错误的文件。这是哪里:
<!-- Copy the reference assembly build product (.dll or .exe). -->
<CopyRefAssembly
SourcePath="@(IntermediateRefAssembly)"
DestinationPath="$(TargetRefPath)"
Condition="'$(ProduceReferenceAssembly)' == 'true' and '$(CopyBuildOutputToOutputDirectory)' == 'true' and '$(SkipCopyBuildProduct)' != 'true'"
>
<Output TaskParameter="DestinationPath" ItemName="ReferenceAssembly"/>
<Output TaskParameter="DestinationPath" ItemName="FileWrites"/>
</CopyRefAssembly>
它试图在我不需要时制作一个参考程序集。所以我只是将 ProduceReferenceAssembly
属性 设置为 false
,因为我不需要一个。