คำถามติดแท็ก msbuild

Microsoft Build Engine หรือที่เรียกว่า MSBuild เป็นแพลตฟอร์มการสร้างสำหรับโค้ดที่มีการจัดการและเป็นส่วนหนึ่งของ. NET Framework

2
การตั้งค่าส่วนตัวทำอะไรกับ ProjectReference ในไฟล์โครงการ MSBuild
ฉันเห็นสิ่งนี้ในไฟล์โครงการเมื่อวันก่อน: <ProjectReference Include="Foo\Bar\Baz.csproj"> <Project>{A GUID HERE}</Project> <Name>Baz</Name> <Private>False</Private> <!-- ??? --> <ReferenceOutputAssembly>False</ReferenceOutputAssembly> </ProjectReference> ทุกโหนดใน a ProjectReferenceดูเหมือนจะอธิบายได้ด้วยตนเอง (ไฟล์โปรเจ็กต์อ้างอิง GUID ชื่อที่จะแสดงในตัวสำรวจโซลูชันและโปรเจ็กต์ปัจจุบันควรเชื่อมโยงกับโปรเจ็กต์ที่อ้างอิงหรือไม่) ยกเว้นPrivateและเพจCommon MSBuild Project Itemsไม่ ' t บันทึกค่านี้ (มีเป็นPrivateตั้งค่าเอกสารสำหรับReferenceมากกว่าProjectReference- แต่มันก็มีNever, AlwaysและPreserveNewestการตั้งค่าไม่เป็นความจริงและเท็จ) การตั้งค่านี้ทำอะไร

1
การสร้างโซลูชัน C # ในโหมดเผยแพร่โดยใช้ MSBuild.exe
ฉันสามารถสร้างโซลูชันโดยใช้ MSBuild.exe ได้ แต่ปัญหาของฉันคือฉันสามารถจัดการได้เพื่อสร้างในโหมด DEBUG เท่านั้น ฉันต้องการสร้างโซลูชันของฉันในโหมดเผยแพร่โดยใช้ MSBUILD นี่คือสิ่งที่ฉันได้ลอง Process msbuild = Process.Start("C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MsBuild.exe", solutionfilepath + " /P:Config=Release"); และ Process msbuild = Process.Start("C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MsBuild.exe", solutionfilepath + " /P:Configuration=Release");
118 c#  msbuild  release  mode  solution 

11
ข้อกำหนด unmet เมืองทีม: มี MSBuildTools12.0_x86_Path
ฉันมีการติดตั้ง TeamCity บนเครื่อง windows x32 Server2008 ฉันใช้งานการติดตั้งเว็บ. net 4.5 ฉันได้คัดลอกไฟล์จากเครื่อง x64 ของฉันตามบทความนี้ด้วยดังนั้นฉันจึงไม่จำเป็นต้องติดตั้ง vs2012 (แม้ว่าฉันได้เปลี่ยนเส้นทางเพื่อลบ x86 บนเครื่อง 32 บิต): MSBuild ในโซลูชัน TeamCity ของ Visual Studio 2012 ดูเหมือนว่าฉันไม่สามารถให้ตัวแทนท้องถิ่นเรียกใช้งานบิลด์ที่ฉันตั้งค่าสำหรับ msbuild ในโครงการ vs2012 หรือ vs2010 ได้ ฉันได้รับ: ข้อกำหนด Unmet: มี MSBuildTools12.0_x86_Path ฉันได้รีสตาร์ทเซิร์ฟเวอร์หลายครั้งและรีสตาร์ทเอเจนต์ด้วย ฉันพยายามยุ่งกับตัวแปรเส้นทางเล็กน้อย แต่คิดไม่ออกว่าฉันขาดอะไรไป ฉันได้ดูในพารามิเตอร์การกำหนดค่าแล้วและสามารถดูสิ่งเหล่านี้: MSBuildTools2.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ …

17
MSBUILD: error MSB1008: สามารถระบุโปรเจ็กต์เดียวเท่านั้น
เหตุใดฉันจึงได้รับข้อผิดพลาด Build ต่อไปนี้ C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Code \ EduBenesysNET \ EduBenesysNET \ EduBenesysNET.vbproj / t: published / p: Configuration = Release / p: Platform = AnyCPU / v: detail / p: PublishDir = "\\ BSIIS3 \ c $ \ DATA …

5
ระบุไฟล์โครงการของโซลูชันโดยใช้ msbuild
ฉันต้องการบรรทัดคำสั่งสำหรับสร้างโครงการเฉพาะของโซลูชันโดยใช้ msbuild เหมือนกับที่เราทำกับ devenv.com ใน devenv.com เราสามารถระบุโครงการของโซลูชันโดยใช้บรรทัดคำสั่งต่อไปนี้ devenv.com /Build Release|x86 test.sln /project "testproject" การใช้บรรทัดคำสั่งข้างต้นฉันสามารถสร้างโครงการทดสอบใน test.sln โดยใช้ devenv.com บรรทัดคำสั่งสำหรับ msbuild สำหรับโซลูชันเดียวกันคืออะไร ขอบคุณ
116 build  tfs  msbuild  release  devenv 

5
ฉันจะรับโปรเจ็กต์. NET Core เพื่อคัดลอกการอ้างอิง NuGet ไปยังเอาต์พุตบิลด์ได้อย่างไร
ฉันกำลังพยายามเขียนระบบปลั๊กอินด้วย. NET Core และข้อกำหนดอย่างหนึ่งของฉันคือต้องสามารถแจกจ่ายปลั๊กอิน DLL พร้อมกับการอ้างอิงไปยังผู้ใช้เพื่อติดตั้ง อย่างไรก็ตามฉันไม่สามารถหาวิธีรวมการอ้างอิง NuGet ของฉันเป็นสิ่งประดิษฐ์ในการสร้างและส่งออกไปยังโฟลเดอร์สร้างโดยไม่ต้องใช้dotnet publishเป็นการแฮ็ก มีวิธีใดบ้างที่ฉันสามารถระบุสิ่งนี้ในไฟล์. csproj (ไฟล์โครงการ)
114 c#  msbuild  .net-core  nuget  csproj 

12
ฉันจะเพิ่มเวอร์ชันแอสเซมบลี C # โดยอัตโนมัติผ่านแพลตฟอร์ม CI (ฮัดสัน) ได้อย่างไร
ตัวฉันและกลุ่มของฉันรู้สึกแย่กับการเพิ่มหมายเลขเวอร์ชันการประกอบและเราจัดส่งชุดประกอบที่มีเวอร์ชัน 1.0.0.0 อยู่บ่อยครั้ง เห็นได้ชัดว่าสิ่งนี้ทำให้ปวดหัวมาก เราเริ่มดีขึ้นมากกับแนวทางปฏิบัติของเราผ่านแพลตฟอร์มCIของเราและฉันต้องการตั้งค่าให้เพิ่มค่าภายในassemblyinfo.csไฟล์โดยอัตโนมัติเพื่อให้เวอร์ชันของแอสเซมบลีของเราได้รับการอัปเดตโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงโค้ดในแอสเซมบลีนั้น ก่อนหน้านี้ฉันได้ตั้งค่า (ก่อนที่เราจะพบฮัดสัน ) วิธีเพิ่มค่าผ่านmsbuildบรรทัดคำสั่งอย่างใดอย่างหนึ่ง(จำไม่ได้) แต่ด้วยฮัดสันที่จะอัปเดตที่เก็บ SVN และทริกเกอร์บิวด์ ANOTHER นั่นจะส่งผลให้เกิดการวนซ้ำแบบไม่สิ้นสุดอย่างช้าๆขณะที่ฮัดสันสำรวจ SVN ทุกชั่วโมง การเพิ่มหมายเลขเวอร์ชันของฮัดสันเป็นความคิดที่ไม่ดีหรือไม่? จะมีทางเลือกอื่นให้ทำอย่างไร? ตามหลักการแล้วเกณฑ์ของฉันสำหรับการแก้ปัญหาคือ: เพิ่มหมายเลขบิวด์assemblyinfo.csก่อนสร้าง เพิ่มเฉพาะหมายเลขบิลด์ในแอสเซมบลีที่มีการเปลี่ยนแปลง สิ่งนี้อาจเป็นไปไม่ได้เนื่องจากฮัดสันจะล้างโฟลเดอร์โครงการทุกครั้งที่สร้าง ยอมรับ assemblyinfo.cs ที่เปลี่ยนแปลงลงในที่เก็บโค้ด (ปัจจุบันคือVisualSVN ) ไม่ทำให้ฮัดสันทริกเกอร์บิวด์ใหม่ในครั้งถัดไปที่สแกนหาการเปลี่ยนแปลง เมื่อพิจารณาถึงสิ่งนี้ในหัวของฉันฉันสามารถหาวิธีแก้ปัญหาส่วนใหญ่ได้อย่างง่ายดายผ่านไฟล์แบตช์ / คำสั่ง แต่ความคิดทั้งหมดของฉันจะทำให้ฮัดสันเรียกใช้งานสร้างใหม่ในครั้งต่อไปที่สแกน ฉันไม่ได้มองหาใครสักคนที่จะทำทุกอย่างเพื่อฉันเพียงแค่ชี้ทางที่ถูกต้องให้ฉันอาจเป็นเทคนิคที่จะทำให้ฮัดสันเพิกเฉยต่อการกระทำบางอย่างของ SVN เป็นต้น ทุกสิ่งที่ฉันพบจนถึงตอนนี้เป็นเพียงบทความที่อธิบายถึงวิธีการเพิ่มหมายเลขเวอร์ชันโดยอัตโนมัติโดยไม่ต้องคำนึงถึงแพลตฟอร์ม CI ที่สามารถหมุนวนเป็นวงวนไม่สิ้นสุด

12
NuGet auto package restore ไม่ทำงานกับ MSBuild
ฉันกำลังพยายามสร้างโซลูชันที่packagesไม่มีเนื้อหา (ยกเว้นrepositories.configภายใน) ด้วย MSBuild 12.0 ฉันคาดหวังว่ามันจะกู้คืนแพ็คเกจที่หายไปทั้งหมดโดยอัตโนมัติก่อนสร้าง แต่ไม่เป็นเช่นนั้น - MsBuild รายงานข้อผิดพลาดมากมาย: "คุณขาดคำสั่งการใช้หรือการอ้างอิงการประกอบหรือไม่" NuGet Manager คือ 2.7 (ฉันเห็นสิ่งนี้ใน Visual Studio 2013 เกี่ยวกับกล่อง) ฉันพยายามส่งผ่านEnableNuGetPackageRestore=trueพารามิเตอร์ - ไม่มีโชค ฉันขาดอะไรไป?

29
การสร้างโครงการ Visual Studio 2015 ล้มเหลว แต่ไม่มีข้อผิดพลาด
โครงการของฉันสร้างล้มเหลวทั้งหมด แต่ฉันไม่พบข้อผิดพลาดใด ๆ ฉันพยายามทำความสะอาดและสร้างใหม่ แต่ก็ไม่ได้ผล ฉันเปลี่ยนความละเอียดของเอาต์พุต MSBuild เป็น 'การวินิจฉัย' หวังว่ามันจะช่วยฉันระบุปัญหาและตอนนี้ฉันติดอยู่ นี่คือลักษณะของผลลัพธ์: 1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'. All packages are already installed and there is nothing to restore. 1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------ 2>Project 'ProjectMM.Data' …

13
VSTS 2010 SGEN: ข้อผิดพลาด: ไม่สามารถโหลดไฟล์หรือแอสเซมบลี (ข้อยกเว้นจาก HRESULT: 0x80131515)
ฉันพบปัญหาแปลก ๆ กับ VS2010 เราใช้ TFS เพื่อสร้าง API ของเราและเราใช้เพื่ออ้างอิงในโครงการของเราโดยใช้ไดรฟ์เครือข่ายที่แมปซึ่งได้รับความเชื่อถืออย่างเต็มที่ เราทำงานแบบนั้นมาอย่างน้อยสองปีและทุกอย่างก็ทำงานได้อย่างสมบูรณ์แบบ วันนี้ฉันแปลง webapp เป็น vs2010 และเมื่อฉันรวบรวมใน Release มันให้ฉัน: SGEN: ข้อผิดพลาด: ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'file: /// L: \ Api \ Release API_20100521.1 \ Release \ CS.API.Exceptions.dll' หรือการอ้างอิงอย่างใดอย่างหนึ่ง ไม่รองรับการทำงาน (ข้อยกเว้นจาก HRESULT: 0x80131515) สิ่งที่แปลกคือมันใช้งานได้เมื่ออยู่ภายใต้โปรไฟล์ Debug ... ฉันลองเพิ่มไฟล์ <runtime> <loadFromRemoteSources enabled="true" /> </runtime> ลงใน app.config และยังไม่มีโชค (ดูhttp://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0และhttp://msdn.microsoft.com/ …

3
จะอัพเกรด msbuild เป็น C # 6 ได้อย่างไร?
ฉันต้องการใช้ C # 6 ในโปรเจ็กต์ของฉัน (การขยายสัญญาณว่างคุณสมบัติอื่น ๆ ) ฉันได้ติดตั้ง VS 2015 บนพีซีของฉันแล้วและมันทำงานได้ยอดเยี่ยมและสร้างรหัสทดสอบเช่น var user = new SingleUserModel(); //all model fields are null var test = user.User?.Avatar?["blah"]; แต่เมื่อผมได้ผลักดันโครงการของฉันที่จะซื้อคืนและ CI ?เริ่มที่จะสร้างมันสร้างล้มเหลวเนื่องจากการได้รับการสนับสนุน ฉันได้ติดตั้ง VS2015 บนเซิร์ฟเวอร์ CI แล้ว แต่ก็เหมือนจะไม่ได้ใช้งาน ฉันจะทำอะไรได้บ้าง? CI - CruiseControl .NET สร้างด้วย C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

13
NuGet หลังพร็อกซี
ฉันคิดว่า NuGet อนุญาตให้กำหนดค่าการตั้งค่าพร็อกซีตั้งแต่เวอร์ชัน 1.4 แต่ฉันไม่พบตัวอย่างบรรทัดคำสั่ง ฉันกำลังพยายามรันบิวด์และ NuGet ไม่สามารถเชื่อมต่อได้ ฉันจะกำหนดการตั้งค่าพร็อกซีบนบรรทัดคำสั่งได้อย่างไร
105 c#  msbuild  nuget 

16
ไม่พบเครื่องมือสร้างสำหรับ v120 (Platform Toolset = 'v120')
การใช้ visual studio 2012 บน windows 8 x64 สาเหตุนี้เกิดจากการย้าย msbuild ไปที่. net แต่ฉันยังไม่เห็นวิธีการแก้ไข 4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update …

4
ตำแหน่งเริ่มต้นสำหรับบันทึก MSBuild คืออะไร
ฉันใช้ Visual Studio Express 2012 ตำแหน่งของล็อกไฟล์อยู่ที่ไหน ฉันค้นหาในโฟลเดอร์ที่จัดเก็บโซลูชันและโปรเจ็กต์ของฉันแล้ว แต่ไม่พบไฟล์. log ใด ๆ นี่คือการกำหนดค่าสำหรับการบันทึก:

5
วิธีระงับคำเตือน MSBuild ที่เฉพาะเจาะจง
มีวิธีใดในการปิดใช้งานคำเตือน MSBuild เฉพาะ (เช่น MSB3253) เมื่อเรียกใช้ MSBuild จากบรรทัดคำสั่ง สคริปต์การสร้างของฉันเรียก msbuild.exe ด้วยวิธีต่อไปนี้: msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release ฉันพบว่าฉันสามารถระงับคำเตือน C # (เช่น CS0618) โดยใช้พารามิเตอร์อื่นสำหรับ msbuild.exe: msbuild.exe MySolution.sln /t:Rebuild /p:Configuration=Release /p:NoWarn=0618 อย่างไรก็ตามวิธีนี้ใช้ไม่ได้กับคำเตือน MSBuild อาจมีคุณสมบัติวิเศษอื่นให้ตั้งค่า? ฉันใช้. NET 3.5 และ VS2008

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.