जवाबों:
ट्रैविस सीआई अब C # का समर्थन करता है । उस पृष्ठ से उदारतापूर्वक उद्धरण देते हुए:
अवलोकन
C #, F #, और Visual Basic प्रोजेक्ट के लिए सेटअप इस तरह दिखता है:
language: csharp
solution: solution-name.sln
mono:
- latest
- 3.12.0
- 3.10.0
लिपि
डिफ़ॉल्ट रूप से ट्रैविस xbuild समाधान- name.sln चलाएगा। Xbuild एक बिल्ड टूल है जिसे Microsoft के MSBuild टूल के कार्यान्वयन के लिए डिज़ाइन किया गया है। इसे ओवरराइड करने के लिए, आप स्क्रिप्ट विशेषता को इस तरह सेट कर सकते हैं:
language: csharp
solution: solution-name.sln
script: ./build.sh
NuGet
डिफ़ॉल्ट रूप से, ट्रैविस नगेट रिस्टोर सॉल्यूशन- name.sln चलाएगा, जो आपकी सॉल्यूशन फाइल से सभी नूगेट पैकेज को पुनर्स्थापित करता है। इसे ओवरराइड करने के लिए, आप स्थापित विशेषता को इस तरह सेट कर सकते हैं:
language: csharp
solution: solution-name.sln
install:
- sudo dosomething
- nuget restore solution-name.sln
देखें डैनियलिक्सन का जवाबऐसा करने के लिए आधिकारिक तरीके के लिए ।
हो सकता है।
अपने स्वयं के मोनो मशीन पर, टर्मिनल का उपयोग करके, cd
अपने समाधान निर्देशिका में और कमांड चला रहे हैं xbuild
। यह स्वचालित रूप से काम कर सकता है, या यह नहीं हो सकता है, क्योंकि दृश्य स्टूडियो में आपके द्वारा उपयोग की जाने वाली विशेषताएं हैं जिन्हें मोनो में कुछ ट्विकिंग की आवश्यकता होती है।
देखने के लिए चीजें:
.csproj
लिनक्स का मामला है या नहीं।export EnableNuGetPackageRestore=true
पहले Nuget की आवश्यकता होती हैxbuild
यदि आपका प्रोजेक्ट ऑटो ।mozroots --import --sync
उन्हें स्थापित करने के लिए करें।nuget.*
इसके बजायNuGet.*
अपने .csproj में संदर्भों के तो वे nuget के विभिन्न संस्करणों में मौजूद हैं।.fsproj
गैर-विंडोज़ मशीनों पर VS2012 कॉन्फ़िगरेशन को ट्रिगर करने के लिए अपने संपादन को संपादित करने की आवश्यकता हो सकती है ।'$(VisualStudioVersion)' == '11.0' Or $(OS) != 'Windows_NT'
Unable to find framework corresponding to the target framework moniker '.NETPortable,Version=v4.0,Profile=ProfileX'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior.
उपयोग प्लेटफार्म शर्तों (के तहत उल्लेख किया पहले मोनो 3.0.11 या ) या 3.1.2 में अपग्रेड करें।<PropertyGroup Condition="$(OS) == 'Windows_NT'"> <TargetFrameworkProfile>Profile46</TargetFrameworkProfile> </PropertyGroup>
या Condition="$(OS) != 'Windows_NT'
मोनो के लिए अलग-अलग चीजों द्वारा । आपकी माइलेज भिन्न हो सकती है। काम का उदाहरण देखें ।.ci/nunit.sh
ननिट परीक्षण के लिए मेरी खुद की शेल स्क्रिप्ट है, जिसे रेपो की जड़ में जांचा गया है। इसलिए मैं nugit-कंसोल संस्करण को मैं nuget के साथ स्थापित कर सकता हूं, और श्रेणियों के विभिन्न शामिल / बाहर भी कॉन्फ़िगर कर सकता हूं। आपका माइलेज अलग-अलग हो सकता है, लेकिन इस तकनीक को xunit आदि के लिए काम करना चाहिए या अपनी खुद की चीज़ को xbuild या नकली के साथ काम करना चाहिए ।
#!/bin/sh -x
mono --runtime=v4.0 .nuget/NuGet.exe install NUnit.Runners -Version 2.6.1 -o packages
runTest(){
mono --runtime=v4.0 packages/NUnit.Runners.2.6.1/tools/nunit-console.exe -noxml -nodots -labels -stoponerror $@
if [ $? -ne 0 ]
then
exit 1
fi
}
#This is the call that runs the tests and adds tweakable arguments.
#In this case I'm excluding tests I categorized for performance.
runTest $1 -exclude=Performance
exit $?
नवीनतम मोनो का परीक्षण करने के लिए मैक होस्ट्स का उपयोग करना सबसे आसान है ( language:objective-c
मोनो v3.1.2 का उपयोग करके लक्ष्य और बाद में मैक पर डीएमजी से सिर्फ एक पीकेजी में वितरण को बदल दिया गया है, इसलिए इंस्टॉल काफी सरल है। इस टेम्पलेट को पोर्टेबल क्लास लाइब्रेरीज़ का समर्थन करना चाहिए। .NET 4.5.1, और एफएसएचआरपी 3.1।
language: objective-c
env:
global:
- EnableNuGetPackageRestore=true
matrix:
- MONO_VERSION="3.8.0"
before_install:
- wget "http://download.mono-project.com/archive/${MONO_VERSION}/macos-10-x86/MonoFramework-MDK-${MONO_VERSION}.macos10.xamarin.x86.pkg"
- sudo installer -pkg "MonoFramework-MDK-${MONO_VERSION}.macos10.xamarin.x86.pkg" -target /
script:
- xbuild
- .ci/nunit.sh Tests/bin/Debug/Tests.dll
मैं मोनो के कई संस्करणों के लिए एक बिल्ड मैट्रिक्स के लिए सेटअप करने के लिए मैक मेजबानों का उपयोग करना आसान है। नीचे स्क्रिप्ट देखें
language: objective-c
env:
global:
- EnableNuGetPackageRestore=true
matrix:
- MONO_VER="2.10.11"
- MONO_VER="3.0.12"
before_install:
- wget "http://download.mono-project.com/archive/${MONO_VER}/macos-10-x86/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg"
- hdid "MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.dmg"
- sudo installer -pkg "/Volumes/Mono Framework MDK ${MONO_VER}/MonoFramework-MDK-${MONO_VER}.macos10.xamarin.x86.pkg" -target /
script:
- xbuild
- .ci/nunit.sh Tests/bin/Debug/Tests.dll
और अब आपको अपने c # प्रोजेक्ट पर ट्रैविस का उपयोग करने के लिए अच्छा होना चाहिए।
sudo installer -pkg
। कृपया इसे ठीक करने में मेरी मदद कर सकते हैं? धन्यवाद! देखें, travis-ci.org/Aimeast/TestForFirst/builds/13814315
language: objective-c
उस टेम्पलेट के लिए आवश्यक है, ताकि वह OS X होस्ट का उपयोग करे।
यह महत्वपूर्ण बिंदु है - परियोजना को मोनो पर काम करना चाहिए। यह ज्यादातर पुस्तकालय-शैली की परियोजनाओं के लिए काम करता है ( AWS SDK .NET एक अच्छा उदाहरण है) हालांकि अधिक विकास प्रयासों और अनुशासन की आवश्यकता होती है। यदि आप Windows प्लेटफ़ॉर्म के लिए किसी प्रोजेक्ट को विकसित कर रहे हैं जैसे कि WPF एप्लिकेशन, Azure क्लाउड सेवा, Windows Phone / Store ऐप या यहां तक कि ASP.NET वेब API के लिए लिनक्स बिल्डिंग वातावरण काम नहीं करेगा।
AppVeyor CI विंडोज प्लेटफॉर्म के लिए एक निरंतर निरंतर एकीकरण सेवा है और यह ओपन सोर्स प्रोजेक्ट्स के लिए मुफ्त है। यह विंडोज के लिए ट्रैविस CI जैसा है!
आप VS.NET समाधान, कस्टम MSBuild परियोजना, PSake या बैच फ़ाइल के किसी भी PowerShell स्क्रिप्ट के लिए निर्माण प्रक्रिया को सेटअप कर सकते हैं। इसके अलावा, AppVeyor में अंतर्निहित कलाकृतियों का प्रबंधन और तैनाती ढांचा है।
जैसा कि पहले ही उल्लेख किया गया है, ट्रैविस सीआई को सी # के लिए बीटा समर्थन है । उपयोग करने के लिए सीधे आगे रहता है। इसके अलावा ननिट को बहुत आसानी से एकीकृत किया जा सकता है। यहाँ .travis.yml फ़ाइल का एक छोटा सा उदाहरण है जो ननिट परीक्षण चलाता है और बिल्ड को चिह्नित करता है यदि कम से कम एक यूनिट परीक्षण विफल हो जाता है:
language: csharp
solution: ./src/yoursolution.sln
install:
- sudo apt-get install nunit-console
- nuget restore ./src/yoursolution.sln
script:
- xbuild ./src/yoursolution.sln
- nunit-console ./src/SomeLibrary.Tests/bin/Debug/SomeLibrary.Tests.dll
sudo: required
, वह अंत में थी। एक जादू की तरह काम करता है।
यदि आप FAKE और पैकेट के साथ GitHub पर F # के साथ ट्रैविस CI का उपयोग करना चाहते हैं, तो F # ProjectScaffold की सिफारिश की जाती है: