好的,所以我目前有两个项目。
安装程序 - .NET 4.0
服务 - .NET 4.5.2
我希望在Service项目之前构建Installer,因为输出文件被捆绑到Installer输出中。
我面临的问题是默认情况下,解决方案想要在安装程序之前构建服务项目。
如果我转到Project Dependencies以获取解决方案并将Service添加为Installer的依赖项。然后我可以从Visual Studio中构建解决方案。但是,我的问题是当我尝试从命令行构建时,这是构建服务器的要求。我收到以下错误。
C:\Program Files\dotnet\sdk\2.1.300-preview1-008174\Microsoft.Common.CurrentVersion.targets(1603,5): error : Project 'C:\Users\username\Source\Repos\agents\src\Service\LMS.Service.csproj' targets 'net452'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.0'. [C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj]
我有点困惑,因为我没有直接引用该项目,只是将其添加为构建依赖项。
执行的命令是dotnet build "C:/Users/username/Source/Repos/agents/src/LicenseMonitoringSystem.sln"
我也尝试了MSBuild等效的命令,但仍然得到相同的错误消息。
为了清楚起见,我使用的是新的.csproj格式。
更新
MSBuild命令
& "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/MSBuild/15.0/Bin/amd64/MSBuild.exe" /m /v:normal /p:Configuration="Release" /p:Platform="Any CPU" /target:Build "C:/Users/username/Source/Repos/agents/src/LicenseMonitoringSystem.sln"
MSBuild输出
"C:\Users\usernames\Source\Repos\agents\src\LicenseMonitoringSystem.sln" (Build target) (1) ->
"C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj.metaproj" (default target) (8) ->
"C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj" (default target) (9) ->
(_GetProjectReferenceTargetFrameworkProperties target) ->
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\Microsoft.Common.CurrentVersion.targets(1603,5): error : Project
'C:\Users\username\Source\Repos\agents\src\Service\LMS.Service.csproj' targets 'net452'. It cannot be referenced by a project that targets '.NETFramew
ork,Version=v4.0'. [C:\Users\username\Source\Repos\agents\src\Installer\Installer.csproj]