2017-01-19 47 views
1

這是從this question開始的後續步驟。如何在.csproj之前構建.xproj

由於我無法直接引用我的.xproj在Visual Studio中的.csproj,我不得不直接引用內置的net461 dll。所以在這種情況下,我希望我的.csproj在運行.csproj之前預編譯.xproj。

我已經試過手動修改的.csproj和添加:

<ItemGroup> 
    <ProjectReference Include="..\SomeFolder\SomeProject.xproj"> 
     <Project>{1A94B405-2D01-4A09-90D5-A5B31180A03B}</Project> 
     <Name>SomeProjectNamespace</Name> 
    </ProjectReference> 
</ItemGroup> 

但是當我建立的.csproj,它不建立.xproj。

當我運行我的.csproj時,我將無法調試.xproj,這已經足夠糟糕了......但至少當我運行.csproj時,我想確保我擁有我的最新版本。編譯xproj。

+0

不是一個解決方案,但略有不同的方法。這兩個項目都足夠大,可以將它們分別保存爲.NET和.NET Core?即爲什麼不統一他們呢? – Ignas

+0

@Ignas我會在將來的某個時候做到這一點...但它在另外4個相當大的項目中被引用。其中之一是Windows窗體項目(yup ...)。我必須構建一個.net核心API,並且我想至少共享同一個存儲庫系統(我將它移植到.NET核心,這很容易)。 –

回答

1

xproj < => Visual Studio 2015中的csproj引用始終是bug,並且從未運行良好。據我所知,沒有好的解決方法。

也就是說,Visual Studio 2017 RC添加了對使用csproj構建.NET Core和.NET Standard的支持。這棄用了xproj和project.json。

有了這個新的格式,項目與項目之間的參考應該是這樣的:

<!-- App.csproj --> 
<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <OutputType>Exe</OutputType> 
     <TargetFramework>net461</TargetFramework> 
    </PropertyGroup> 
    <ItemGroup> 
     <ProjectReference Include="..\Library\Library.csproj" /> 
    </ItemGroup> 
</Project> 

<!-- Library.csproj --> 
<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFramework>netstandard1.1</TargetFramework> 
    </PropertyGroup> 
</Project> 
相關問題